

def cal2(add2, add3):
    """这是一个求和的函数"""
    # print(add2+add3)  # 求和结果在函数中只会计算一次，出现一次，想要保存这个结果需要返回
    return add2 + add3  # 此时求和结果将返回至函数调用处


print(cal2(10, -1))  # 若此处不加print，控制台不会输出结果，而现在是返回值的其中一种常见应用，即print打印出来
print(cal2(200, 3000) ** 2)  # 这是返回值的另一种常见应用，即对返回值做需求的运算
# 实际上，返回值一般不会紧接着调用函数后使用，后续使用为图方便，应先用变量存储，即：变量名 = 函数名()
# 当在函数体中运行代码时碰到return，执行完返回后return后面的代码不被执行，return只能在函数中使用
# return 后为空，这等价于没有 return，返回值为None


def calc(num1, num2):
    """这是一个求和及求差的函数"""
    num3 = num1 + num2
    num4 = num1 - num2
    return num3, num4


# 法一：利用组包获取两个返回值
result = calc(10, 20)  # 函数调用后返回的值组包成元组
print(result)  # 所以此时的 result 引用的就是元组
print(f'两数之和：{result[0]}  两数之差：{result[1]}')
# 法二；直接拆包获取两个返回值
x, y = calc(10, 20)
print(f'两数之和：{x}  两数之差：{y}')
